package cn.foolishbird.crow.resource;

import cn.foolishbird.crow.core.CrowConstant;
import cn.foolishbird.crow.enumeration.ResourceTypeEnum;

import java.time.LocalDateTime;

/**
 * 资源接口
 *
 * @author foolish bird
 * @email luohongtu@foolishbird.cn
 */
public interface Resource {

    /**
     * 资料编号
     *
     * @return
     */
    String resourceNo();

    /**
     * 上级资源编号
     *
     * @return
     */
    String resourceParentNo();

    /**
     * 默认的appId
     *
     * @return 默认的appId
     */
    default String appId() {
        return CrowConstant.DEFAULT_APP_ID;
    }

    /**
     * 资料类型
     *
     * @return 资料类型
     */
    ResourceTypeEnum resourceTyp();


    /**
     * 用户自定义字段
     *
     * @return 用户自定义字段
     */
    String customerNo();

    /**
     * 资源名
     *
     * @return
     */
    String resourceName();

    /**
     * 权限编号
     *
     * @return 权限编号
     */
    String permissionNo();

    /**
     * 排序
     *
     * @return
     */
    Integer priority();

    /**
     * 创建时间
     *
     * @return
     */
    LocalDateTime createTime();

}
